package Package.Network_Programming.UDPAcceptsData;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class UDPAcceptsData {
    public static  void UDPAcceptsData() throws IOException {
//        UDP接收数据【应用】
//接收数据的步骤
//创建接收端的Socket对象(DatagramSocket)
        DatagramSocket DS = new DatagramSocket(10086);
        while (true) {
//创建一个数据包，用于接收数据
            byte[] bys = new byte[1024];
            DatagramPacket dp = new DatagramPacket(bys, bys.length);
//调用DatagramSocket对象的方法接收数据
            DS.receive(dp);
//解析数据包，并把数据在控制台显示
            try {
                int ith=dp.getLength();
                System.out.println("数据是：" + new String(dp.getData(), 0, dp.getLength()));
            }catch (Exception e){
                //关闭接收端
                DS.close();
            }

        }

//DatagramPacket(byte[] buf, int len) 创建一个DatagramPacket用于接收长度为len的数据包
//byte[] getData() 返回数据缓冲区
//int getLength() 返回要发送的数据的长度或接收的数据的长度
    }
}
